using System;
using Symbonix.Library.Framework;
using Symbonix.NorSoNet.Security.BLL.Privacy;
using System.Web;
using System.Web.Caching;
using Symbonix.NorSoNet.Security.BLL.Membership;
namespace Symbonix.NorSoNet.Security.BLL {
	
	public class ModuleManager : ModuleBase {

        public static Symbonix.NorSoNet.Security.BLL.Privacy.IPrivacyPolicyFactory PrivacyPolicyFactory
        {
			get {
                if (HttpContext.Current.Cache["PrivacyPolicyFactory"] == null)
                    HttpContext.Current.Cache.Insert("PrivacyPolicyFactory", new SystemPrivacyPolicyFactory(), null,
                        Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);
                return (HttpContext.Current.Cache["PrivacyPolicyFactory"] as IPrivacyPolicyFactory);
			}
		}
		
		public static Symbonix.NorSoNet.Security.BLL.Membership.IMembershipFactory MembershipFactory {
			get {
                if (HttpContext.Current.Cache["MembershipFactory"] == null)
                    HttpContext.Current.Cache.Insert("MembershipFactory", new SystemMembershipFactory(), null,
                        Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);
                return (HttpContext.Current.Cache["MembershipFactory"] as IMembershipFactory);
			}
		}

        public static Workflow SecuriyWorkflow
        {
            get
            {
                return new Workflow();
            }
        }

        public static SecurityMailHelper MailHelper
        {
            get { return SecurityMailHelper.GetInstance(); }
        }

        public override bool Install()
        {
            throw new NotImplementedException();
        }

        public override bool Uninstall()
        {
            throw new NotImplementedException();
        }

        public override Symbonix.Library.DataStructure.ReadWriteCustomCollection<IModule> GetAllModules()
        {
            throw new NotImplementedException();
        }

        public override bool Create(string name, Guid signature, string assemblyName)
        {
            throw new NotImplementedException();
        }
    }

}
